package com.wfm.leetcode.editor.cn;

import java.util.Arrays;

/**
 * 【a,b】表示会议的开始时间和结束时间，会议是可以重复利用，最少需要多少件会议室
 *
 * 输入：intervals = [[0,30],[5,10],[15,20]]
 * 输出：2
 * 输入：intervals = [[7,10],[2,4]]
 * 输出：1
 *
 * 比如【1，4】【2，,3】【3，,5】
 * [1  (2  {3)  4]  5}  6  7
 * 排序后 1 3
 *       2 4
 *       3 5
 * 左边代表会议开始时间，右边会议结束时间，
 * 只有左边大于右边的数字，空出了会议室，才不用res++
 */
public class P253会议室2 {
    public int minMeetingRooms(int[][] intervals) {
        int res = 0, n = intervals.length;

        int a[] = new int[n];
        int b[] = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = intervals[i][0];
            b[i] = intervals[i][1];
        }

        Arrays.sort(a);
        Arrays.sort(b);

        for (int i = 0, j = 0; i < n; i++) {
            if (a[i] < b[j]) res++;
            else j++;
        }

        return res;
    }
}
